1. Technical Field
The present disclosure relates to the field of data communication, and more particularly to communicating to a data transmitter transmit parameters for transmitting data.
2. Related Art
Devices such as cell phones, personal digital assistants, computers, peripheral devices, and many other devices communicate data by transmitting data frames. A data frame is a data packet that includes the data to be transmitted along with a header. The data is the payload and the header includes supplemental information for processing the payload.
A transmitting device typically includes a processor (to execute transmit software) and transmit hardware (i.e., a data transmitter) for executing transmission attempts for each data frame. For transmitting a data frame, the processor communicates the data frame to a queue of the transmit hardware. Transmit data associated with each data frame is communicated along with the data frame and stored in a buffer. The transmit data includes transmit parameters that define characteristics of the transmission attempt(s) for the data frame. The transmit parameters may define the transmit rate, the bandwidth of the transmission, the modulating scheme, the transmission media, and/or other transmission characteristics for the respective data frame.
The transmitting device provides for multiple transmission attempts in the event that an acknowledge (ACK) signal is not received from the receiving device after a data frame is sent. To increase the likelihood of a successful transmission, the transmit data for each data frame includes not just one but multiple sets of varied transmit parameters. If a transmission attempt consistently fails using a first set of transmit parameters, a subsequent attempt may be made using a second, different transmit parameter set. Transmit data may include up to ten or more different transmit parameter sets to increase the likelihood that a data frame will be received. The number of transmit parameter sets in the transmit data is fixed and all of the transmit parameter sets (e.g., ten parameter sets) are communicated to the buffer when a data frame is queued for transmission.
The process of communicating the transmit data to the buffer includes the read/write operations that are executed to write all of the transmit parameter sets to the buffer for each queued frame. This process may be relatively inefficient under many circumstances. Consider, for example, that a data frame may be successfully sent on the first (or early) attempt. In that case, a majority of the time and resources that were used to write all of the transmit parameter sets to the buffer were unnecessary overhead for transmitting the data frame. Also, a transmitting device typically includes several queues. Therefore, the total inefficiency is a multiple of the number of queues because each queue has an associated memory block in the buffer; all of the transmit parameter sets for each queued data frame are written to the memory blocks regardless of whether they will be utilized. A further shortcoming of this process is that it does not allow a transmit parameter to be adjusted within any transmit parameter set (even those not currently being used) once the transmit data is written to the buffer. An improved approach is desirable.